package com.zfzs.post.modules.address.service;

import com.zfzs.post.modules.address.domain.AgentArea;
import com.zfzs.post.modules.address.service.dto.AgentAreaDTO;
import com.zfzs.post.modules.address.service.dto.AgentAreaQueryCriteria;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
* @author ck
* @date 2019-09-09
*/
public interface AgentAreaService {

    /**
    * queryAll 分页
    * @param criteria
    * @param pageable
    * @return
    */
    Object queryAll(AgentAreaQueryCriteria criteria, Pageable pageable);

    /**
    * queryAll 不分页
    * @param criteria
    * @return
    */
    Object queryAll(AgentAreaQueryCriteria criteria);

    /**
     * findById
     * @param id
     * @return
     */
    AgentArea findById(Long id);

    /**
     * create
     * @param resources
     * @return
     */
    AgentArea create(AgentArea resources);

    /**
     * update
     * @param resources
     */
    void update(AgentArea resources);

    /**
     * delete
     * @param id
     */
    void delete(Long id);

    /**
     * 删除
     **/
    void deleteAreaById(Long id);

    /**
     * 取消所有默认
     **/
    void cancelDefaultByAgentId(Long agentId);

    /**
     * 设置默认
     **/
    void defaultAreaById(Long id);

    /**
     * 取消默认
     */
    void cancelDefaultById(Long agentId);

    /**
     * 根据代理商查询列表
     */
    List<AgentArea> queryAreaList(Long agentId);

    /**
     * 获取默认地址
     * @param agentId
     * @return
     */
    AgentArea getDefault(Long agentId);
}